/**
 * The MIT License (MIT)
 * 商城购买数量增减效果
 * @author 透笔度
 * @开源中国 https://my.oschina.net/tbd/blog
 * @码云 https://gitee.com/dgx
 */

const towxImg = require('../../../utils/towxImg');
// pages/numchange/numchange.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    min: 1,//最小值 整数类型，null表示不设置
    max: null,//最大值 整数类型，null表示不设置
    num: 1,//输入框数量 整数类型
    change: 1,//加减变化量 整数类型
    def_num: 1,//输入框值出现异常默认设置值
    article: ""
  },
  //输入框失去焦点事件
  evblur: function (e) {
    var zval = parseInt(e.detail.value);
    console.log(zval)
    //正则 正整数 0 负整数
    if (/(^-[1-9][0-9]{0,}$)|(^0$)|(^[1-9][0-9]{0,}$)/.test(zval)) {
      //最大值
      if (this.data.max != null) {
        if (zval > this.data.max) {
          console.log("超出最大值")
          this.setData({ num: this.data.def_num })
        } else {
          this.setData({ num: zval })
        };
      } else {
        this.setData({ num: zval })
      };
      //最小值
      if (this.data.min != null) {
        if (zval < this.data.min) {
          console.log("低于最小值")
          this.setData({ num: this.data.def_num })
        } else {
          this.setData({ num: zval })
        };
      } else {
        this.setData({ num: zval })
      };
    } else {
      console.log("不是整数")
      this.setData({ num: this.data.def_num })
    };
  },
  //加
  evad: function () {
    var cval = Number(this.data.num) + this.data.change;
    if (this.data.max != null) {
      if (cval > this.data.max) {
        console.log("超出最大值")
      } else {
        this.setData({ num: cval })
      };
    } else {
      this.setData({ num: cval })
    };
  },
  //减
  evic: function () {
    var cval = Number(this.data.num) - this.data.change;
    if (this.data.min != null) {
      if (cval < this.data.min) {
        console.log("低于最小值")
      } else {
        this.setData({ num: cval })
      };
    } else {
      this.setData({ num: cval })
    };
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let code = '```\n<view class="container my-page">\n  <view>商城购买数量增减效果</view>\n  <view class="buy">\n    <view class="ic" bindtap="evic">-</view>\n    <input class="in" type="text" placeholder="数量" value="{{num}}" bindblur="evblur" />\n    <view class="ad" bindtap="evad">+</view>\n  </view>\n</view>\n```\n\n```\nPage({\n  /**\n   * 页面的初始数据\n   */\n  data: {\n    min:1,//最小值 整数类型，null表示不设置\n    max: null,//最大值 整数类型，null表示不设置\n    num: 1,//输入框数量 整数类型\n    change: 1,//加减变化量 整数类型\n    def_num: 1//输入框值出现异常默认设置值\n  },\n  //输入框失去焦点事件\n  evblur: function (e) {\n    var zval = parseInt(e.detail.value);\n    console.log(zval)\n    //正则 正整数 0 负整数\n    if (/(^-[1-9][0-9]{0,}$)|(^0$)|(^[1-9][0-9]{0,}$)/.test(zval)){\n          //最大值\n          if (this.data.max != null) {\n            if (zval > this.data.max) {\n              console.log("超出最大值")\n              this.setData({ num: this.data.def_num })  \n            }else{\n              this.setData({ num: zval })\n            };\n          } else {\n            this.setData({ num: zval })\n          };\n          //最小值\n          if (this.data.min != null) {\n            if (zval < this.data.min) {\n              console.log("低于最小值")\n              this.setData({ num: this.data.def_num })\n            } else {\n              this.setData({ num: zval })\n            };\n          } else {\n            this.setData({ num: zval })\n          };\n    }else{\n        console.log("不是整数")\n        this.setData({ num: this.data.def_num })\n    };\n  },\n  //加\n  evad: function () {\n    var cval = Number(this.data.num) + this.data.change;\n    if (this.data.max != null){\n      if (cval > this.data.max){\n        console.log("超出最大值")\n      }else{\n        this.setData({ num: cval })\n      };\n    }else{\n      this.setData({ num: cval })\n    };\n  },\n  //减\n  evic: function () {\n    var cval = Number(this.data.num) - this.data.change;\n    if (this.data.min != null) {\n      if (cval < this.data.min) {\n        console.log("低于最小值")\n      } else {\n        this.setData({ num: cval })\n      };\n    } else {\n      this.setData({ num: cval })\n    };\n  },\n})\n```\n';

    let article = towxImg.dealWithRichText(code);
    this.setData({ article });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})